The filter in the original question is close to a solution. All that's needed is to rearrange what goes in the select. E.g.
select
.DistributionList.Items[]| select(.Origins.Items[].Id == "abc")| .Id
The filter: .. | objects | select(.Origins.Items[]? | .Id == "abc") | .Id
produces:
"parent123"
You might want to parameterize the filter, e.g.:
def parent(child): .. | objects | select( .Origins.Items[]? | .Id == child) | .Id ;