Here’s how I solved this:
As suggested earlier, I downloaded the dataset from the other mirrors and created a Dataset class object
class MaleFacesDataset(Dataset):
    
    def __init__(self, csv_file, root_dir, transform):
        
        self.landmarks_frame = pd.read_csv(csv_file)
        self.root_dir = root_dir
        self.transform = transform

    def __len__(self):
        return len(self.landmarks_frame)
    

    def __getitem__(self, idx):

        #print("GET!")

        if torch.is_tensor(idx):
            idx = idx.tolist()


        img_name = os.path.join(self.root_dir,
                                self.landmarks_frame.iloc[idx, 0])

        image = io.imread(img_name)

        sample = image

        sample = Image.fromarray(np.uint8(sample)).convert('RGB')
        

        if self.transform:
            sample = self.transform(sample)

        return sample

Then I created an instance of this object
male_dataset = MaleFacesDataset(csv_file = 'csv file dir', 
                                root_dir= 'root dir')

As suggested earlier, I then extracted the indices of the male images as follows
landmarks_frame = pd.read_csv('attribute file dir')                 # read the csv file with attributes
male_images_list  = landmarks_frame.iloc[:,20]                    # extract the column with gender attributes
male_images_list =  male_images_list[male_images_list == 1]     # select only the indices for male (attribute val = 1)
male_images_index = male_images_list.index      # corresponding image indices

And finally, I created a subset of my original dataset using
Subset(male_dataset, male_images_index)