You have the correct way of doing a function pointer in your struct (so kudos for that, so many people get it wrong).
Yet you've swapped around the drawFunc and * in your function definition, which is one reason why the compiler is complaining. The other reason is that you have the same identifier being used as the type and the variable. You should choose different identifiers for the two different things.
Use this instead:
void glesRegisterDrawFunction(glesContext *cntxt, void(*drawFunc)(glesContext*));
^^^^^^^^^
note here