Estás confundiendo cosas.
Una stored function se crea EN la base de datos y queda cargada EN la base de datos y se invoca como una función SQL cualquiera.
Lo que yo te puse es el código del script EN SQL que debe usarse para cargarla en una interfase de administración del tipo MySQL Query Browser, Navicat, phpMyAdmin. En algunos casos pueden ser suprimidas las líneas que indican el DELIMITER.
Pero no es un script que deba ni pueda ejecutarse desde un script PHP , a menos que estés intentando cargar la función desde código para luego usarla.
Desde el momento en que usas un CREATE, debes tener en cuenta que eso no es una función ni una consulta (que son sentencias de clase DML), sino sentencias que no devuelven valores salvo una ejecución exitosa (son sentencias de clase DDL).
Así pues, lo que debes hacer es:
1. Ejecutar el script desde phpMyAdmin o MySQL Query Browser para cargar la función en la base.
2. Invocarla como cualquier función, ya sea desde una sentencia o dentro de un SELECT:
Esta sentencia te devovlerá, por ejemplo, el contenido del campo `predeterminado`del registro cuyo id es igual a 23...
¿Ahora se comprende?