शायद कुछ ऐसा ही:
SELECT
a.person_id
FROM
table AS a,
table AS b
WHERE
a.person_id = b.person_id AND
a.favorite_id = 1 AND
b.favorite_id = 2
ORDER BY
( IF( a.is_main_favorite = "y", 1, 0 )
+
IF( b.is_main_favorite = "y", 1, 0 ) ) DESC
वैसे:आप डेटाबेस में y/n के बजाय 1/0 स्टोर करना चाह सकते हैं ताकि आपको IF कॉल की आवश्यकता न पड़े