This might work for a single read on the Contacts table, but I can't guarantee any improvement or even correctness.
SELECT S.Id,
T.Id,
SAC.Contacts_Id AS AssignedContacts_Id,
SAC.OwnerType,
SAC.ContactsId,
SAC.Description,
FROM [dbo].[ChildTable1] S
LEFT JOIN [dbo].[Table1] T ON S.ID = T.ID
LEFT JOIN [dbo].[Contacts] SAC ON (SAC.Owner_Id = S.ID AND SAC.OwnerType = 1
OR SAC.Owner_Id = T.ID AND SAC.OwnerType = 0);