Group by Multiple columns and then count different value of same column
Remove gender from GROUP BY clause:
SELECT DistrictId
     , fb.DisabilityTypeId
     , SUM( CASE WHEN GenderId = 1 THEN 1 ELSE 0 END ) AS Male
     , SUM( CASE WHEN GenderId = 2 THEN 1 ELSE 0 END ) AS Female 
FROM Districts d 
LEFT JOIN FormAddresses a 
    ON d.Id = a.DistrictId 
JOIN PeopleForms pf 
    ON a.PeopleFormId = pf.Id 
JOIN FormBeneficiaries FB 
    ON pf.Id = fb.PeopleFormId 
JOIN FormPersonalInfos fp 
    ON pf.Id = fp.PeopleFormId 
WHERE a.IsDeleted = 0 
  AND pf.FormTypeId = 2 
  AND d.CityId = 3 
GROUP BY DistrictId
       , fb.DisabilityTypeId