Make the textbox UNbound, then put that criteria in your recordsource property. Because you put the textbox's recordsource equal to [Procedure] (i.e. bound), it's overriding your assignment.
If you rather not show anything there you can put
=Iif([Category] = "Glasses", [Procedure], Null)
=Iif([Category] = "Glasses", [Procedure], "")
Because you're working in a report, assigning NULL or "" won't make a difference on a print-out. If you were working in a form, THEN there would be a difference and you'd have to be careful which you want.
Michigan Dept. of Environmental Quality, Air Quality Division