Nisam se udubljivao u tvoj kod tako da ne znam da li je ovo resenje, ali je definitivno problem - ono sto je ocigledno je da si proveravao da li je nesto jednako NULL. To u SQL-u ne mozes da uradis. Moras proveravati IS NULL ili IS NOT NULL.
Edit: Evo sad sam malo bolje pogledao. Problem je sto ti IF nikad nece biti TRUE iz gore navedenog razloga, i kada dodje do labele rais_error: tebi je @errno = 0
Every hamster has his day.