Active Directory - filter checking for null

I have some basic questions about the get-aduser -filter options. The filter command seems lack several options for filtering that where-object can perform.

  1. I am trying to find a property that has an empty or null value. Why can I not use $null with the filter parameter?
  2. Why do I need to put single quotes around a variable when its already in double quotes?
Thanks Bill
get-aduser -filter {Surname -notlike "*"} #Correct Results

get-aduser -filter * | Where-Object {$_.surname -eq $null} #Correct Results

get-aduser -filter {Surname -eq “$null”} # InCorrect Results Returns nothing

get-aduser -filter {Surname -eq $null} #InCorrect Results Error $null value not defined

get-aduser -filter “Name -eq ‘$null’” #InCorrect #get-aduser : The search filter cannot be recognized

get-aduser -filter "Name -eq '$varPrinter'" #Doesnt a single quote do the literal value $varPrinter?