Wow, that is tricky...I figured this out by doing the query manually in ArcMap...Looks like you have to escape the single quote with a another single quote...So here were the values I was playing with:
rows = arcpy.SearchCursor("Quadrants")
>>> qts = [r.Quotes for r in rows]
>>> del rows
>>> qts
[u"test with quotes' 2", u"test with quotes' 3", u"test with quotes' 4", u"test with quotes' 5"]
To bypass the invalid expression error I had to replace the single quotes with 2 single quotes:
for q in qts:
... where = '''"Quotes" = '{0}' '''.format(q.replace("'","''"))
... arcpy.SelectLayerByAttribute_management("Quadrants","NEW_SELECTION", where)
This properly selected everything...That was interesting; I've never had to do that before.