Wenn ich dich richtig verstanden habe, sollte das reichen:
SELECT page_id, count(*)
FROM tags
WHERE tag IN ('New Zealand', 'Trekking')
GROUP BY page_id
HAVING count(*) > 1
Sie müssen keine UNION verwenden, wenn Sie aus derselben Tabelle auswählen.