Во-первых, вы можете проверить это в коде как:
if (![user valueForKeyPath:@"menu.meal"]) {
//User does not have a menu or a meal
}
Внутри вашего предиката это будет выглядеть так же:
[NSPredicate predicateWithFormat:@"user.menu.meal == nil"]
В любом случае, поскольку в Objective-C корректно обрабатывается ноль, вы получите правильный ответ.