Puede usar la función ORDENAR POR y CAMPO. Consulte http://lists.mysql.com/mysql/209784
SELECT * FROM table ORDER BY FIELD(ID,1,5,4,3)
Utiliza Field() función, que "Devuelve el índice (posición) de str en la lista str1, str2, str3, .... Devuelve 0 si no se encuentra str" según la documentación. Entonces, en realidad, ordena el conjunto de resultados por el valor de retorno de esta función, que es el índice del valor del campo en el conjunto dado.