Потому что при сравнении булева со строкой оба значения в данном случае приводятся к числу.
alert(true == "1 ")
Почему так? ¯\_(ツ)_/¯
Там вообще много странного. Никто на память эту хрень не помнит. Используйте ===.
P.S. К true, если очень надо, можно привести напрямую:
alert(Boolean("6"))