Because nothing isn’t something, and something is true. It’s base Boolean logic where everything is either true or false. Null/nothing is false.
It’s a weird way to think about conditionals, but it makes sense when you use them in real examples. In my case, I use them like this when I need to make sure that a variable has a value. So I can do something like
If(variable){do things with the variable}else{do stuff when the variable doesn’t exist}
No it’s not, “” (a null/empty string) is the parameter. Not every function needs a parameter to be valid, and negation is one of them. Negating nothing is something, so “not()” = “not(null)” = “not(false)” = “true”