Bueno segun lo que pones en tu codigo el problema esta en la asignacion que haces en $nombre = "$nombre1", si observas bien en el caso en el que la variable no tenga contenido por que el usuario no esta registrado al hacer la asignacion tanto $nombre como $nombre1 tienen el mismo valor es decir sin contenido de tal forma que solo se cumple el primer if por lo cual solo te aparece "Hola" sin nada mas debido a que $nombre no contiene nada en ese momento para resolver el problema podrias hacer algo como lo siguiente ( Puede haber mas formas pero es la que se me ocurre al vuelo en este momento).
Código PHP:
<?php
session_register('nombre1');
?>
<?
if( empty( $nombre1 ) )
{
$nombre1 = "Anonimo";
}
echo "Hola $nombre1";
?>
Si te das cuenta quite la asignacio despues del session, posterior ha eso si la variable no tiene contenido le asigno el valor de "Anonimo" e imprimo la salida ha pantalla, si sucede lo contrario solo se imprime el valor de la variable $nombre1.