SQL temporary variable query
You can rewrite this using JOINs rather than subselects to get what should be the correct answer.

This is assuming you are aiming to set the @id in this query and carry it forward to another query.

In this situation, the LIKE is only useful if you have a case sensitive collation. If you have case insensitive then you can just use =.

 DECLARE @id INT;
  DECLARE @empId INT = 100;
  DECLARE @type VARCHAR (50) = 'Contractor'; 
  DECLARE @family VARCHAR (50) = 'Domain-EU'; 

  SELECT TOP 1 @id = et.typeid
  FROM  EmployeeMap AS em
  INNER JOIN EmpType AS et ON et.typeId = em.typeId
  INNER JOIN FamilyTree AS ft ON ft.familyId = em.familyId
  WHERE empId = @empId
    AND type LIKE @type
    AND familyName LIKE @family;