Thanks for Your answer!
As u suggested, I changed getitem function in Dataloader class to something like this:
self.tensor = torch.ones((3, 224, 224))

    def __getitem__(self, idx):
        """imagePath = self.new_dataset + self.imgs[idx]["path"]
        image = Image.open(imagePath)
        image = self.transform(image)
        imageClass = self.imgs[idx]["label"]
        label = self.classes.index(imageClass)
        return image, label"""
        return self.tensor,2

But unfortunately the results are the same as before. Increasing batch size still increases total training time. Here are some tested examples.
ShuffleNet V2 x0.5:
Batch size: 142 | Training time: 16,15 s |
Batch size: 284 | Training time: 16,71 s |
Batch size: 424 | Training time: 16,85 s |
Batch size: 560 | Training time: 17,15 s |
MobileNet V3 Small:
Batch size: 96 | Training time: 16,78 s |
Batch size: 194 | Training time: 16,91 s |
Batch size: 290 | Training time: 17,11 s |
Batch size: 386 | Training time: 17,61 s |
Maybe it’s not even an error, but I thought that bigger batch size always decreases execution time.