When I'm driving with no one in the passenger seat (kids in the back), the passenger seat belt light flashes on and beeps. I drive a 2013 Subaru Impreza. What causes this?
In your vehicle, the occupant detection sensor detects when someone of the appropriate weight is sitting in the passenger seat. It then sends this information to the occupant detection module. The occupant detection module also receives a signal from the buckle switch regarding whether or not the occupant is buckled up. If the module detects that an occupant is present but the seat belt is not buckled, it will share that information with the air bag control module in order to turn on the seat belt warning light and sound.
Your problem is somewhere in this system, and my guess is that the occupant detection sensor or control module has failed. A trained professional, such as one from YourMechanic, will be able to inspect your electrical system and determine which part may be faulty.