How do I detect execute permission granted to a role (when no ON clause was used)
GRANT EXECUTE TO [principal] is simply a shortcut for GRANT EXECUTE ON DATABASE::&lt;dbname&gt; TO [principal];

You can check this using the following:

SELECT dp.name
    , perms.class_desc
    , perms.permission_name
    , perms.state_desc
FROM sys.database_permissions perms
    INNER JOIN sys.database_principals dp ON perms.grantee_principal_id = dp.principal_id 
WHERE dp.name = 'MyRole'