You are passing the arguments in the wrong order and are also calling the __ini__ function of the VisionDataset, while I assume you would like to call it from the parent class i.e. MNIST.
This code should work:
class myMNIST(datasets.MNIST):
    def __init__(self,root,train,download,transform):
        super(myMNIST,self).__init__(root, train,transform, download=download)
        self.transform = train_transform

    def __getitem__(self, index):
        if (y == 2 or y==3 or y ==4): 
            x = self.transform()
        return x, y

    def transform(self): 
        self.transform = aug_transform

    
train_dataset_special_aug = myMNIST(root='data', 
                                    train=True,
                                    transform= train_transform,
                                    download=True)