Los stored procedures
no poseen parámetros opcionales en MySQL.
Además,
no se usan @ en los nombres de los parámetros, porque sólo se usan en las variables globales de usuario (que son variables de sesión). Poner @ en los parámetros generaría eventualmente problemas con el uso de los SP, ya que los parámetros de entrada y las variables locales no llevan símbolos especiales para ser usadas.
Para resolver las dudas de este tipo es mejor recurrir directamente al manual de referencia:
19.2. Sintaxis de procedimientos almacenados