Believe this would be because the column labels match, but the index labels do not.
For your case,
drop the indexes and try:
rewB4rej = data_manager.data['rejects_data']
rew = rewB4rej.query('reject_type == "REWORK"').reset_index(drop=True)
rej = rewB4rej.query('reject_type == "SCRAP"').reset_index(drop=True)
rewB4rej = rew.merge(rej, on=['barcode', (rew.created_date >
rej.created_date)], how='left')