$users = CUser::GetList(['LAST_NAME'=>'asc'],'asc',['!GROUPS_ID'=>[29,35,30,279,34]]);
Стандартный фильтр не позволяет задать отрицание по группам. Решение в два шага.
$arUsers = CGroup::GetGroupUs er(3);
$rsUsers = CUser::GetList($by = "", $order = "", array("ID" => "~".implode("& ~", $arUsers)));