UART doesn't transmit all characters when using UDREn interrupt
Your method 1 does not work, because in a single interrupt, you are writing all characters of the string to the Uart Data Register. When an UDRE interrupt happens, it is ready to accept one (1) character until another UDRE interrupt happens.
Which is the reason why your method 2 works, because it expicitly waits for the Uart Data Register to be empty before writing a single character and waiting again before it is ready for the next character.