Mmmm, no hay diferencias como bien te indica pateketrueke pero esto no es patron singleton ya que puedes hacer:
   
Código PHP:
Ver original- new MiClase(); // Deberia dar un error 
O tambien   
Código PHP:
Ver original- $obj = MiClase::singleton(); 
- $obj2 = (clone) $obj; // Deberia dar error 
Tampoco deberia permitirte hacer esto otro:    
Código PHP:
Ver original- $obj = MiClase::singleton(); 
- $obj2 = unserialize($serialized); // No debería permitirlo tampoco. 
Todas las opciones de arriba te crean un nuevo objeto cosa que no debería ya que el código debe permitir una y solo una instancia.