How to join to a single list of IDs from two different tables
You contradict yourself.  First you state you would like to treat humans and organization as one group and then you state using one table would cause queries to require more code.   

Three tables with one master:
With two tables rather than funnel to, the constituentID is the master the [human].[id_number] and [organization].[id_number] would just be FK.  So you would insert into constituent first to get the master ID.  With this it would be a pain to enforce the same ID not in both [human] and [organization].  If you are going to put a type in constituent to enforce the two other tables then you might as well combine in the first place.

Two tables:
You could have two independent [human] [organization] tables and combine them with with a view with a union but that would not be my preference.  

One table:
Not having a last name is not a big difference.  They both have address,  phone number, and EIN/SSN.  I would share name / last name and let first name be null.  A person is still valid without a first name so do you really need to enforce it.  ID is the PK and is an identity.  Type - person or organization is not part of the PK.   Maybe SSN/EIN as PK but then that would not allow for one constituent to have more than one account.  Then you can have views for person and organization.    

In summary I don't think a null (enforced or not) is that big of a deal.  Compared to separate tables.