La fonction FIND_IN_SET fera l'affaire
SELECT * FROM table_name WHERE id IN (1, 3, 2, 9, 7) ORDER BY FIND_IN_SET(id, '1,3,2,9,7');
http://dev.mysql .com/doc/refman/5.0/en/string-functions.html#function_find-in-set
EDIT :notez le manque d'espaces dans l'argument de chaîne de la fonction find_in_set.