Esos usuarios regresan pero regresan como nulos para todas las columnas devueltas en las tablas donde la combinación izquierda no encontró una combinación adecuada.
Debido a cómo funcionan los nulos ANSI, b4_.ACTIVE=1 no será válido para estos registros porque nulo <> 1
Intenta reestructurar tu bloque where de la siguiente manera:
AND (b4_.ACTIVE=1 or b4_.ACTIVE is null)
AND (B4_.STATUS='A' or B4_.STATUS is null)
AND (UB2_.VISIBLE=1 or UB2_.VISIBLE is null)
and (bl3_.ACTIVE=1 or bl3_.ACTIVE is null)
Otra forma de abordar esto es agregar los requisitos previos a sus uniones izquierdas. Puede hacer lo que hice a continuación y excluirá las insignias donde ACTIVO <> 1 excluyendo las insignias malas y aún devolverá a todos los usuarios.
left outer join
REWARD.BADGES b4_
on bl3_.BADGEID=b4_.ID
AND b4_.ACTIVE=1