Yes, you can use a workflow to send a notification. The trigger on the "Group Member Workflow" in the Group Type will look like this:

The workflow
Automatically Persisted
Attributes will be
Start Activity Actions:
Get Group Member (Action Type Attribute Set From Entity)
Get Group Member If Entity Not Passed In (SQL Run)

Get Leader Email (Lava Run)

This is the lava:
{% assign emails = '' %}
{% assign group = Workflow | Attribute:'Group','Object' %}
{% assign members = group.Members %}
{% for member in members %}
{% if member.GroupRole.IsLeader == true and member.GroupMemberStatus == 1 %}
{% assign emails = emails | Append:member.Person.Email | Append:',' %}
{% endif %}
{% endfor %}
{% assign emails = emails | ReplaceLast:',','' %}
{{ emails }}
Notify Group Leaders (Email Send)

This is the Lava:
{% assign groupLeader = Workflow | Attribute:'GroupLeaderPerson','Object' %}
{% assign newGroupMember = Workflow | Attribute:'GroupMember','Object' %}
{{ 'Global' | Attribute:'EmailHeader' }}
<p>Hello,</p>
<br>
<p>This is a notification to let you know that <b>{{ newGroupMember.Person.FullName }} </b>has been added to the group "{{ newGroupMember.Group.Name }}".</p><br>
<p>Email: {{ newGroupMember.Person.Email }}</p><br>
<p>Phone: {{ newGroupMember.Person | PhoneNumber:'Mobile' }}</p>
{{ 'Global' | Attribute:'EmailFooter' }}
Activate Workflow Complete (Activate Activity)
Workflow Complete