Som det andra svaret nämner:frågan du postade har ingenting om vilken ordning du vill ha dina resultat, bara vilka resultat du vill få.
För att beställa dina resultat skulle jag använda ORDER BY FIELD():
SELECT * FROM foo f where f.id IN (2, 3, 1)
ORDER BY FIELD(f.id, 2, 3, 1);
Argumentlistan till FIELD kan vara variabel längd.