Entries from matrix should not appear in loop
You are on the right track, to “collect” the entry IDs you have to use the merge filter in your Matrix loop though.

{% set highlightProfileSingleIds = [] %}

{% for profile in highlightProfiles %}
    {% set ids = profile.hightlightProfileTeaser.ids() %}
    {% set highlightProfileSingleIds = highlightProfileSingleIds|merge(ids) %}
{% endfor %}