Saludos
Puntualmente estas son las diferencias
Es mas optimo utilizar
1.
que
Ya que en el 1. la tabla esta utilizando los indices de la llave primaria de la tabla mientras que en la segunda no por lo tanto lo haría mas lento
2.
La diferencia de colocar la condición en el WHERE o en el ON, son cosas totalmente distintas ya que en el ON se utiliza solamente para proporcionar la relación entre tablas mientras que el where se asegura que esa consulta siempre se cumpla. Realmente por "debajo" no se bien q ocurre pero por lo que notado es mas confiable coloca siempre todas las condiciones de campos dentro del WHERE