Sorry maybe the example I gave was pretty bad because I tried to simplify it which was a mistake but basically I need to show user types as in I need to show all the user that are type 1 underneath one heading on my site and then all the user's that are type 2 underneath which means using OR wouldn't be relevant so it should look like this like this:-
TYPE 1 USERS
John Smith
Paul Jones
Jill Jackson
TYPE 2 USERS
Gary Stevenson
Steve Arnold
So maybe this is a better example of why I'm using join which again produces the error of either the top or bottom query returns no results:-
SELECT DISTINCT @x:='TYPE 1 USERS' AS heading, COUNT(u1.id) AS u1_count, u1.id FROM users AS u1 WHERE u1.type = 1
UNION ALL
SELECT DISTINCT @x:='TYPE 2 USERS' AS heading, COUNT(u1.id) AS u1_count, u1.id FROM users AS u1 WHERE u1.type = 2