Opravdu nevidím způsob, jak to udělat přímo pomocí ORDER BY FIELD.
Zajímalo by mě však, zda byste mohli provést JOIN proti meta tabulce a poté ORDER BY FIND_IN_SET.
Netestováno, ale doufejme, že vám to dá nápad:-
SELECT *
FROM `categories`
INNER JOIN meta ON metakey = 'category_order' AND FIND_IN_SET(categories.ID,metavalue)
WHERE `parent` = '0'
ORDER BY FIND_IN_SET(categories.ID,metavalue)
FIND_IN_SET na JOIN možná není nutné