Here's a little tip about using custom properties to control materials:
One slight oddity, which I feel I should go over again, as it's only briefly mentioned in the video, is why the original cube (not the instance) goes black when the attribute node is connected. The attribute node is set to look on the instancer for the custom property. The cube, not being the instancer, doesn't have the custom property and so, confusingly in my opinion, the attribute node just returns black. You then end up with the odd situation where you can only view if the material is working by looking at the instance of those objects.
I also now realise that it would have been better to use the lamp from the beginning of the video as the example instead of the cube and Suzanne - no idea why I didn't. Maybe because the setup is a bit more complicated due to the lamp being partially assembled by Geometry Nodes. Anyway, one result of not re-creating how the light works is that I never included the final node network the bulb material uses, so here it is:
It's fairly simple, but just to give some minor explanation, as I had a question about it after sharing the video, the turning on and off of the light is done by mixing between the emission shader and an empty input, which will default to black.
Of course, you can mix between far more complex things than an emission and an empty socket; you could mix between completely different principled shaders, or entire node networks, allowing some instances to have what looks like a completely different material. And instead of a boolean checkbox, you could change it to a float property with a 'factor' subtype to display a nice slider which fades between the two.
Ray.