Jag vet inte kodtändaren, men i grund och botten vill du att den ska göra fackföreningen först och sedan tillämpa ordningen över hela uppsättningen. Detta skulle kräva en underfråga. Det bör resultera i följande SQL-fråga:
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
Hoppas det hjälper dig lite.