Jak zmiňuje druhá odpověď:dotaz, který jste zveřejnili, nemá nic o tom, v jakém pořadí chcete výsledky získat, pouze jaké výsledky byste chtěli získat.
K uspořádání vašich výsledků bych použil ORDER BY FIELD():
SELECT * FROM foo f where f.id IN (2, 3, 1)
ORDER BY FIELD(f.id, 2, 3, 1);
Seznam argumentů FIELD může mít proměnnou délku.