Naprawdę nie widzę sposobu, aby zrobić to bezpośrednio za pomocą ORDER BY FIELD.
Zastanawiam się jednak, czy możesz wykonać JOIN względem tabeli meta, a następnie ORDER BY FIND_IN_SET.
Nie testowałem tego, ale mam nadzieję, że podsunie ci pomysł:-
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)
Prawdopodobnie FIND_IN_SET na JOIN nie jest konieczne