Insisto, por qué no creas la función directamente en una consola de MySQL y así te darás cuenta si en realidad tienes algún error con la BD o es culpa de las herramientas que estás tratando de utilizar.
Te lo vuelvo a decir, la función no tiene absolutamente nada de malo...
incluso puedes agregar las lineas DELIMITER en PHP... podría apostar mi desayuno de mañana a que ese es un problema... independientemente de que lo hagas con phpmyadmin o con cualquier otra herramienta, el (;) sigue siendo delimitador de término de sentencia... puedes también hacer esa prueba desde phpmyadmin, ejecuta esto:
y veamos que pasa.
Saludos
Leo.