Както се споменава в другия отговор:в заявката, която сте публикували, няма нищо за това какъв ред искате да получите резултатите, а само кои резултати искате да получите.
За да подредя вашите резултати, бих използвал ORDER BY FIELD():
SELECT * FROM foo f where f.id IN (2, 3, 1)
ORDER BY FIELD(f.id, 2, 3, 1);
Списъкът с аргументи към FIELD може да бъде с променлива дължина.