In general, shaders can only be applied to things that draw to the screen. I believe any class that inherits from CanvasItem can draw canvas_item shaders.
However, I'm not sure if any class will work, since the need to probably draw something first. For example, Node2D has properties like position, but does not draw by default.