В вашем коде:
person *object=NULL;
person &object1=*object;
вы разыменовываете нулевой указатель, так что вы получаете неопределенное поведение. И чтобы ответить на ваш вопрос, нет такой вещи, как NULL ссылка.
И чтобы ответить на другую часть вашего вопроса, просто потому, что программа компилируется, нет никакой гарантии, что она правильная или будет работать. Компиляторы C ++ не обязаны даже пытаться диагностировать тип ошибок, содержащихся в вашем коде.