¿Por qué los números negativos de Javascript no siempre son verdaderos o falsos?

-1 == true;        //false
-1 == false        //false
-1 ? true : false; //true

¿Alguien puede explicar el resultado anterior? Sé que podría solucionar esto comparándolo con 0, pero estoy interesado. Esperaría que al menos una de las declaraciones de descuidado iguales sea verdadera, ya que hacen una conversión de tipo implícita, y ciertamente no esperaba que el ternario tuviera un resultado totalmente diferente.

Respuestas a la pregunta(3)

Su respuesta a la pregunta