Thought about doing something like this. But couldnt get it to operate successfully.
Define a text field, gCategory and specify global storage.
Set it up with your value list in the header. You can use your button or just set an OnObjectSave or OnObjectModify trigger on the drop down list to perform the following script and then you don't need the button.
Enter Find Mode ---> clear the pause check box
Set Field [Products::category ; Products::gCategory ]
Set Error Capture [on]
Perform Find 
Sort Records [no dialog ; restore ] ---> an optional step you can use to sort the records thus found into a useful order such as alphabetical by description or something.
Other scripted find examples can be found here: Scripted Find Examples
worked beautifully both ways. I did however opt to us buttons as shown in screenshot. Trying to make things as idiot proof as I can for some of my team members.
Thanks for the help