What's happening here is that comparisons with NULL always return "false". Not even NULL compares true to NULL. So, even though NULL (row 4) doesn't contain string "del", it still gives a "false" when compared with (like) '%del%'. Null means no value is assigned and you may not compare any value to an undetermined value.
Comparisons with NULL return "false" whether you use equal (=) or not equal (!=), or use "like" or "not like". This code...
If 'Hello' = NULL print 'Hello = Null'
else print 'Hello != NULL'
If 'Hello' != NULL print 'Hello != Null'
else print 'Hello = NULL'
returns the rather schizophrenic results....
Hello != NULL
Hello = NULL
So, to cover yourself, you can explicitly code for the possibility of NULL with either "is NULL" or one of the operators "IsNull" or "Coalesce". like mtassin in previous post, I prefer coalesce.