Информация Вам для размышления.
Первое: Зачем здесь проверка на неравенство с учетом типа?
Второе: Зачем такое сложное условие в while, во-первых оно не правильно, во вторых его можно упростить.
А теперь правильный ответ

В Вашем случае нужно было написать так:
do
{
var str1 = prompt("Введите имя", "Name");
}
while (!str1);
Почему так:
Первое: код становится более читабельным, поскольку условие в while более наглядно
Второе: потому что так все работает как надо!

)