But results of 2 queries are not same. First query all token_id and group by origin_contract_id, but second call for every token_id and returns row(s).
IMHO if you group by all rows after join by origin_contract_id, you get expected values as first query.