Immagino che ti manchi il EXISTS
clausola.
La query seguente seleziona tutte le categorie, per le quali esiste almeno una riga nella tabella di intersezione.
SELECT category_name
FROM categories c
WHERE EXISTS (
SELECT 1
FROM assigned_cat ac
WHERE ac.category_id = c.category_id
)