This line:
$TextureRect.texture = load("res://Blue Jeans.png")`
Loads a png as a StreamTexture using load, and tries to set it to the texture property of whatever $TextureRect is.
But the error says that there is no texture property on a null instance. Thus, the problem is that $TextureRect is a null instance.
So what does the expression $TextureRect do? It is equivalent to get_node("TextureRect"). In other words it is trying to get a child node called "TextureRect". And it is getting null…
Does the node on which the script is attached have a child node called "TextureRect"? You didn't share how the scene tree looks like, but I suspect it does not.
The script you shared says extends TextureRect, thus the script would be attached to a TextureRect. However, that is not what they do in the tutorial. In the tutorial the script is attached to a Node2D that has the TextureRect as child. You can see that at 4:10 on the tutorial video.
If you want to set the texture of the node on which the script is attached, set texture directly:
texture = load("res://Blue Jeans.png")`
Or if you rather be explicit, use self:
self.texture = load("res://Blue Jeans.png")`
On the other hand, if you are trying to follow the tutorial, then put the script on a node that has the TextureRect as a child (called "TextureRect"), and there $TextureRect would work.