What application is that code from? It's not from the default IPS code at least.
The problem is that the return array() code is inside the IF check, if the check fails nothing is returned. Adding a simple return at the end of the function is enough:
public static function configurationOptions( \IPS\Member $member = NULL )
{
if ( $member === NULL or $member->modPermission( 'can_view_hidden_content' ) )
{
return [
'my_notification' => [
'type' => 'standard',
'notificationTypes' => ['my_notifiction'],
'title' => 'notifications__my_notification',
'showTitle' => FALSE,
'description' => 'notifications__my_notification_desc',
'default' => ['inline'],
'disabled' => ['email', 'push']
]
];
}
return array();
}