Supondo que você queira mais do que apenas o id do artigo:
SELECT a.id
,a.other_stuff
FROM articles a
JOIN article_category ac
ON ac.article_id = a.id
GROUP BY a.id
HAVING GROUP_CONCAT(DISTINCT ac.category_id ORDER BY ac.category_id SEPARATOR ',') = '1,2'
Se tudo o que você quer é o id do artigo, tente isto:
SELECT article_id
FROM article_category
GROUP BY article_id
HAVING GROUP_CONCAT(DISTINCT category_id ORDER BY category_id SEPARATOR ',') = '1,2'
Veja-o em ação em http://sqlfiddle.com/#!2/9d213/4
Deve-se acrescentar também que a vantagem desta abordagem é que ela pode suportar a verificação de qualquer número de categorias sem ter que alterar a consulta. Basta tornar '1,2' uma variável de string e alterar o que é passado para a consulta. Assim, você pode facilmente pesquisar artigos com categorias 1, 2 e 7 passando uma string de '1,2,7'. Não são necessárias junções adicionais.