MySQL fulltext query is very slow | What I'm doing wrong?
Give this formulation a try:
SELECT ..., x.relevance
    FROM (
        SELECT  id,
                MATCH(...) AGAINST(...) AS relevance
            FROM products 
            WHERE MATCH(...) AGAINST(...)
         ) AS x
    JOIN products AS pr  USING(id)
    WHERE pr.city_id = 1
    ORDER BY x.relevance DESC