There is always a physical address of 0 (but it may not necessarily be displayed in physical memory), but on a regular platform, any calls are usually performed in a virtual address space (as jweyrich shows below, you can use mmap, etc., to directly display the physical address space ), so any attempt to read / write to address 0 may cause some kind of exception.
In simpler processors (I think, microcontrollers, etc.), this protection cannot be, therefore, if you try to write down address 0, you have nothing to catch.
Note also that a null pointer does not have to point to address 0; the only guarantee is that it will be compared with an integer value 0.