Ich habs hingekriegt! Mein Fehler war, dass ich bei der falschen Tabelle angefangen habe, ich kann die ids aus der tabelle pictures suchen und sie nach den Kriterien filtern.
$result = mysql_query("
SELECT
id
FROM
pictures
WHERE
id IN (
SELECT
picture_id
FROM
picture_tag
WHERE
tag_id IN (
SELECT
id
FROM
tags
WHERE
name = 'abc')
) AND
id IN (
SELECT
picture_id
FROM
picture_tag
WHERE
tag_id IN (
SELECT
id
FROM
tags
WHERE
name = 'def')
)
") or die(mysql_error());
Jetzt kann ich den "id IN"-Teil ganz einfach erweitern und ich kriege nur die gefilterten Ergebnisse!