==>Another approach to the problem is to list all ID:s that have 'Home' and 'Invoice'. That should return "2" from the example above.
Okay, you mean, exact no more no less, exactly
So try this:
GROUP BY ID
HAVING COUNT(DISTINCT IIF(NAME IN ('Home','Invoice'), NAME, 'X')) = 2;
Why do I use IIF?
Easy, first for shorting and second for readability.