I’m not sure where the error comes from, as your code seems to work with the correction:
class ResDown(nn.Module):
    def __init__(self, 
                 in_channels, 
                 out_channels,
                 scale=4): 
        super().__init__()
        self.down = nn.Sequential(
            nn.ZeroPad2d(1),
            nn.Conv2d(in_channels=in_channels, out_channels=out_channels, kernel_size=scale, stride=scale),
            nn.LeakyReLU(inplace=True) )
        self.down[1].weight = nn.Parameter(
            nn.init.normal_(torch.empty((out_channels, in_channels,scale,scale),dtype=torch.float32)))  
       
    def forward(self, x):
        x = self.down(x)       
        return x 

model = ResDown(1, 1)
x = torch.randn(1, 1, 24, 24)
out = model(x)
out.mean().backward()

for name, param in model.named_parameters():
    print(name, param.grad.abs().sum())
> down.1.weight tensor(1.8962)
down.1.bias tensor(0.5600)

Where are you trying to print the gradients? Did you make sure to call backward before printing them?