Myslím, že vám chybí EXISTS
doložka.
Následující dotaz vybere všechny kategorie, pro které existuje alespoň jeden řádek v průsečíkové tabulce.
SELECT category_name
FROM categories c
WHERE EXISTS (
SELECT 1
FROM assigned_cat ac
WHERE ac.category_id = c.category_id
)