Odoo community version 15, I am seeing this behaviour - the browse method returns empty objects if the id's don't exist on the database. I'm interested to know if there's a specific reason for it as it's seems counterintuitive and it confused the hell out of me :). Might be worth making a note in the docs
ipdb> result = odoo_model.browse([-1,-2,-99999999999999]) ipdb> result leaf.sample(-1, -2, -99999999999999) ipdb> len(result) 3