Puoi ordinare in base a un valore derivato da una colonna. Puoi utilizzare un CASE operatore per specificare l'ordine:
SELECT * FROM table
WHERE id IN (3,6,1,8,9)
ORDER BY CASE id WHEN 3 THEN 1
WHEN 6 THEN 2
WHEN 1 THEN 3
WHEN 8 THEN 4
WHEN 9 THEN 5
END