Hi, when you try to install SQL Server 2012 SP1, this returns an error when tries to validate the registry key DefaultData, if you see the logs you can found this text "The User Data directory in the registry is not valid. Verify DefaultData key under the instance hive points to a valid directory."
To reproduce this scenario:
1. Install a SQL Server 2012 by default (Next, Next, Next, ect.)
2. Once installed, go to REGEDIT.exe and verify the key DefaultData (As you can see, this key is not available)
3. Go to SSMS and change your default data directory to other one like "C:\IDontExists" or if you want run this script
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultData', REG_SZ, N'C:\IDontExists'
4. If you do this using the script this does not verify that this, however if you do this using the GUI, this does not verify this either (If you write the new directory directly into the textbox)
5. Now, your SQL Server have an invalid configuration, if you try to créate a Database by default, for example using the script CREATE DATABASE NewDatabase this will be created without a problem in the first default directory (C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\)
6. Try to install SP1, this will fail, a lot of people use the easy way (Drop the registry key), however the right way is just reconfigure your SQL Server to use a valid directory.
Where is the bug?, easy, you have to validate if the data directory is a valid directory when a user is trying to change this configuration and/or during the installation process you have to validate this directory and as i'm showing you, you should reconfigure SQL Server to use the first default directory as is doing during the creation of a new database by default.