Consider this code
\"Type: array\" $v = @() \" -eq `$null: $($v -eq $null)\" \" -ne `$null: $($v -ne $null)\" \"Type: string\" $v = \'\' \" -eq `$null: $
When comparison operators are used against a collection, they do not return a boolean value ($true or $false). They return all the members of the collection that meet the condition.
See:
Get-help About_Comparison_Operators