Es NULL es un macro y esta definido en stddef.h y stddef esta a su vez lo pueden incluir diferentes librerías.
A diferencia de otros lenguajes NULL no es una palabra reservada, ni esta predefinido.
Como prueba puedes ver que este programa no compila.