Jak powiedziałeś, możesz użyć UNION
nad wynikiem zapytania. W dalszej części odpowiedzi pokażę Ci rozwiązanie wykorzystujące CTE, czyli standardową składnię SQL dostępną w wielu systemach, ale niestety nie w MySQL. Jednak, aby przekonwertować to zapytanie na MySQL, możesz spojrzeć na następującą odpowiedź:Jak używać klauzuli "WITH" w MySQL?
WITH query AS (
SELECT t1.categoryid AS lev1, t2.categoryid as lev2, t3.categoryid as lev3, t4.categoryid as lev4
FROM category AS t1
LEFT JOIN category AS t2 ON t2.parent = t1.categoryid
LEFT JOIN category AS t3 ON t3.parent = t2.categoryid
LEFT JOIN category AS t4 ON t4.parent = t3.categoryid
WHERE t1.categoryid = 4149418031)
SELECT lev1 AS category_value FROM query
UNION
SELECT lev2 AS category_value FROM query
UNION
SELECT lev3 AS category_value FROM query
UNION
SELECT lev4 AS category_value FROM query;