Kurz gesagt: Da liegst Du falsch.
Code:
SELECT ... FROM ... WHERE ... INTO
sagt ja aus, dass für jeden ermittelten Wert etwas in die Variable(n) geschrieben werden soll. Wird kein Wert ermittelt, weil das Select kein Ergebnis liefert, wird auch nichts geschrieben.
Würde in dem von Dir beschriebenen Fall die Variable nun auf NULL gesetzt, so würde ich das als einen Fehler ansehen.