Who is responsible for aircraft separation in IFR (limited/no visibility)?
ATC is always responsible for IFR-IFR separation, regardless of weather conditions. That is their primary mandate, and all other services are provided on a workload-permitting basis.

In visual meteorological conditions, pilots of IFR aircraft are also responsible for seeing and avoiding other aircraft. But for IFR traffic of course this is not always possible, since the aircraft may be going in and out of the clouds.

If a loss of separation (at worst, a collision) occurs between two IFR aircraft, ATC would be held responsible (assuming the pilots followed ATC's instructions). If analysis indicates the pilots could have seen each other, they would also be held responsible.