How to preseve Execute permissions for MySQL procedure with alter procedure (Drop/Create)
Best is to grant execute at the DB level:

grant execute on db.* to test1@'10.%';  (don't use %, too risk, use ip subnet)
This way you don't need to grant permission in SP.