you should use empty for what you are trying to do.
empty will check for an existing variable and see if its contents are a null string and !$var will test to see if the variable exists or not (or if its boolean if its true or false). since its from a form, it will always be created, however, wheter or not its empty depends on the user choosing a file or not.
$var = "";
echo empty($var); //1 (true)
echo !$var; //1 (true) because its empty, aka bool false and ! takes the opposite.