The difference would be in the parameters used. The first example has two convolutions each with their own parameters (weights) while the second shares parameters across the two inputs.
As is, I don’t think both versions can work at the same time because the the two convs in the first example have a different number of input and output channels implying that x1/x2 have different inputs channels. This means that in the second example self.conv(x2) isn’t possible. Summing x1 and x2 in the first example is also strange though it might be possible via broadcasting.