if( GetSeeingPawn()) with out the ! means true, with the ! means is it a false. So when you see the ! that means NOT. ! = NOT, or false.
that says if the actor is that class and the !GetSeeingPawn() is false, then you can drop into that if.
It not setting it to nulptr it is just checking what is it, true or false and if its a nullptr it is a false then it will drop in. So if you have a seeing pawn then it will be true and you will not get in because both are not true in that if statement to let you into it.
Here is one you can use, off and on thru your code when you need it.
Example the bool
//Takes a bool and turns it to its opposite
bIsThisTrue = !bIsThisTrue ;//If it true coming in it will be false going out or vise versa.
Hope this helps.