Jag kan inte riktigt se ett sätt att göra det direkt med ORDER BY FIELD.
Men jag undrar om du kan göra en JOIN mot metatabellen och sedan BESTÄLLA MED en FIND_IN_SET.
Inte testat detta, men förhoppningsvis ger dig idén:-
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)
Möjligen är FIND_IN_SET på JOIN inte nödvändigt