Você pode fazer isso usando FIND_IN_SET , por exemplo.
SELECT * FROM T WHERE T.id IN(4,78,12,45)
ORDER BY FIND_IN_SET(T.id,'4,78,12,45');
Embora você precise duplicar a lista, se estiver gerando a consulta no código, isso não é um grande problema.