LEFT JOIN devuelve todo lo que está en la primera tabla del FROM (la de la izquierda), tenga o no relacion con la segunda tabla.
En realidad nos estamos basando en un ejemplo quye tu mismo nos pasate, y que está mal...
Estás buscando los user sin lista, sobre una tabla que forzosamente debe tener relaciones con la lista, porque es la tabla que los relaciona...
Debes buscar entre la tabla de usuarios y la tabla relacional.
Código SQL:
Ver originalSELECT u.id, COUNT(uhl.id_list) cant
FROM users u
LEFT JOIN users_has_list uhl ON u.id = uhl.id_users
INNER JOIN `list`l ON uhl.id_list = l.id
WHERE l.id_admins = 1 OR u.id = uhl.id_users IS NULL
GROUP BY u.id
En esencia, la query no es posible sin tres tablas, por la restriccion de l.id_admins = 1 que estas poniendo.