If the array key exists in the array it will always be set to something, even it is set to null or an empty string.
Perhaps you would be better off looking for true/false values.
But I guess it depends upon your data source.
What is it actually set to when the data is absent?
So I assume the data source is a form. In that case $_POST['notes'] will always be set (assuming a text input).
In that case I would check for empty() or even empty(trim($_POST['notes']))
Rather than setting the value to 0 I would probably use null then you can check with if($notes), though checking twice seems redundant.
Where this data is coming from and what you are using it for matters. This is why @SamA74 's replies contained conditional statements/questions. What you do changes depending on the context.
So, please answer the question of where this data is actually coming from and what are you doing with it? It appears to be coming from an sql query an you are producing a report (output) and you want to include specific html markup if there is a value in the ‘notes’ element?