"Eso" is a neuter demonstrative (neither masculine nor feminine). It's used when the thing being referred to is unspecified (unstated/genderless/etc). When you use the word to describe the masculine noun "abrigo", you have to use the masculine version, "ese".
- I found that coat on the street. Encontré ese abrigo en la calle.
- That is a real mystery! Eso (the situation I find myself in, etc) es un verdadero misterio.