Realmente no puedo ver una manera de hacerlo directamente usando ORDENAR POR CAMPO.
Sin embargo, me pregunto si podría hacer un JOIN contra la tabla meta y luego ORDENAR POR FIND_IN_SET.
No probé esto, pero con suerte te dará una idea:-
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)
Posiblemente FIND_IN_SET en JOIN no es necesario