Não achei que isso fosse possível, mas encontrei uma entrada de blog aqui que parece fazer o tipo de coisa que você procura:
SELECT id FROM table WHERE id in (7,2,5,9,8)
ORDER BY FIND_IN_SET(id,"7,2,5,9,8");
dará resultados diferentes para
SELECT id FROM table WHERE id in (7,2,5,9,8)
ORDER BY FIND_IN_SET(id,"8,2,5,9,7");
FIND_IN_SET
retorna a posição de id
no segundo argumento dado a ele, então para o primeiro caso acima, id
de 7 está na posição 1 no conjunto, 2 em 2 e assim por diante - o mysql internamente funciona algo como id | FIND_IN_SET
---|-----------
7 | 1
2 | 2
5 | 3
então ordena pelos resultados de
FIND_IN_SET
.