Mira, en general en los lenguajes de programación suele haber (.Net, por caso), funciones de fecha que te permiten realizar esa tarea sin tener que recurrir a inventar una función en la base de datos. E incluso es mucho más eficiente hacerlo en programación que en SQL.
¿Por qué quieres hacerlo por este medio?
¿Qué ventaja supones que puede tener?
¿En qué contexto lo usarías y para resolver qué problema?
Puede que veamos un mejor camino para tu problema si nos das algo más de información.
Como tip te comento: no necesitas el SP para crear el primer día del mes, porque ese día es siempre 1. No tiene ninguna utilidad hacer eso.
En ese contexto, bien podrías hacer:
y obtendrías esa fecha, pudiendo usar directamente eso en un INSERT sin necesidad de un SP.
En cuanto al último día, bien podrías usar
, al momento de pretender insertar esa fecha en una tabla, con lo que tampoco sería necesario el SP...
Trata de no complicarte creando funciones para datos que puedes crear en programación, o por medios de funciones que ya existen.
En el Manual de Referncia de MySQL hay muchas funciones más. Leelas.
http://dev.mysql.com/doc/refman/5.0/es/functions.html