Количество столбцов в списке выбора в обеих частях UNION ALL должно быть одинаковым. Это означает, что если, например, вы хотите добавить «субъект» во 2-ю часть запроса, вам необходимо добавить «заполнитель» в 1-ю часть запроса:
SELECT * FROM (
SELECT parent_id as mID, NULL, count(*) as cnt
FROM wp_forum_posts
WHERE text LIKE '%{$word}%'
GROUP by 1
UNION ALL
SELECT id, subject, count(*)
FROM wp_forum_threads
WHERE subject LIKE '%{$word}%'
GROUP by 1) x
ORDER BY 2, 1
это должно работать.