How does a monkey head touch a cube
Add a Store Named Attribute in a simulation zone. I called it status. Store a boolean with the value $1$ on it.
The selection, to which this attribute is applied, is driven by a mesh boolean between the cube and the monkey head.
We can determine, if the meshes intersect, by examining the point count of the resulting mesh. If it is larger than 0 they intersect. Thanks to auto-casting we can insert the point count of the boolean mesh directly into the selection input of the Store Named Attribute node.
Make sure to set the material and read the status attribute from the material nodes.
You need to play the animation starting on the first frame or cache the simulation zone to properly see the attribute change.