The docs don't make it clear but SETFOCUS will only move focus to the first item selected by the rest of the command. So if the rest of the command only deselects (or doesn't do anything, e.g. Select NOPATTERN) then it won't do anything.
You'd probably need to use scripting to do what you want: Run the select commands up to that point, then call tab.Update to tell the object to update its snapshot of what is selected, then feed the first selection into Select FROMSCRIPT SETFOCUS which I think should work.
This is actually something I had tried. I gave up because the Select commands already behave differently when called from a script without Setfocus. I know from other scripts that what is shown in the file display can be (will quickly be) different from what is in the command object and this time I just didn't feel like digging into the details.
If you have time to have a look - here are the buttons and some test files. No rush, it's more appetite for knowledge than real need
You could need to update the cmd object's file list as well. Select FROMSCRIPT will act on the files given to the cmd object, which if it comes from clickdata.func.command will be whatever was selected when the button started, unless something is done to change that.
So you'd need to call cmd.ClearFiles(), then cmd.AddFile(...) with the file you want to give focus, then run the commands on that.