Eu realmente não consigo ver uma maneira de fazer isso diretamente usando ORDER BY FIELD.
No entanto, gostaria de saber se você poderia fazer um JOIN contra a meta tabela e depois ORDER BY um FIND_IN_SET.
Não testei isso, mas espero que lhe dê a idéia:-
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)
Possivelmente o FIND_IN_SET no JOIN não é necessário