No conozco Code-Igniter, pero básicamente quieres que haga la unión primero y luego aplique el orden en todo el conjunto. Esto requeriría una subconsulta. Debería dar como resultado la siguiente consulta SQL:
select * from
((SELECT * FROM media m INNER JOIN category c ON m.category_id = c.id )
UNION ALL
(SELECT * FROM media m INNER JOIN category c ON m.category_id = c.id)) T
ORDER BY m.media_files DESC LIMIT 3
Espero que te ayude un poco.