I don't think there's an intrinsic way to filter for existing connections from a different Synapse object. The most parsimonious way to do this, I think, would be to use the synapse.connect(i=..,j=..) syntax. Unless your populations are huge, it should be possible to build a connectivity matrix of the E_to_I connection, then use the inverse of that for the I_to_E. Something like this, assuming a pre-built E-to-I connectivity matrix `mat`:
i,j = zip(*np.argwhere(mat))
E_to_I.connect(i=i, j=j)
i,j = zip(*np.argwhere(mat.T==0))
I_to_E.connect(i=i, j=j)
Hope that helps!