Boolean creates a hollow object
Ok, it turned out to be an issue with the original object being non-manifold on the example I posted.

When I replaced it with a simple torus (which was manifold) the error occurred again because there was accidentally an edge split modifier as well. When I moved boolean above the edge split, in the modifier panel, the hollow look disappeared.