Supongo que te estás perdiendo EXISTS
cláusula.
La siguiente consulta selecciona todas las categorías, para las cuales existe al menos una fila en la tabla de intersección.
SELECT category_name
FROM categories c
WHERE EXISTS (
SELECT 1
FROM assigned_cat ac
WHERE ac.category_id = c.category_id
)