Para consultar por la inexistencia de registros en una relación de Laravel usas el método doesntHave() indicando el nombre de la relación sobre la que quieres usar.
User::doesntHave('profile')->get()
El método doesntHave
te permite filtrar los User que no tienen un perfil asociado. No necesitas más. Es tan sencillo como eso.
Si quieres, con conveniencia puedes crearte un scope para poder manejar este consulta y ser más expresivo a la hora de usar el modelo en tus controladores.
public function scopeNullProfile(Builder $query)
{
return $query->doesntHave('profile');
}
Esto es meramente opciónal, pero entonces tu consulta quería así:
User::nullProfile()->get();
Esto es como gustes...