[userDefaults boolForKey:@"theKeyOfMyBOOL"]; returns a BOOL, so either YES or NO (not nil).
Internally, it is stored as an NSNumber. So, if you call
[userDefaults objectForKey:@"theKeyOfMyBOOL"];
you will be given an NSNumber, if you have ever stored anything, or nil, if you have not.