First, if you created a foreign key on father_id you wouldn't be able to insert the null son record.
Second, since -255 is your default value for 'no father' in the Father table why not remove the isnull() from the view and use -255 as the value for 'no father' in the son table? Then everything works fine with an inner join and foreign key?
Edit: Oh yeah, the table name says [Family] on the create index statements.