Well, there SHOULD be a way to do this... but there seems to be a bug that was supposed to have been resolved that appears to be there still.
I don't know if there is a reason you specifically want to 'close' the current lister... so much as load up a specific layout.; but you SHOULD be able to use a button whichs runs something like:
Prefs LAYOUT=My LAYOUTTHISLISTER
Which if working properly, should simply reset the current lister to the state saved in the layout (named after the = sign, in my case 'my'). But it seems not to be working for me despite it being reported fixed in 220.127.116.11 unless I'm using it wrong.
Other than that there are three other options that might not exactly fit the bill for you:
you could edit your layouts setting to enable the 'close all existing listers' option... but this would then affect ALL listers everytime you loaded this layout.
I'm quite drunk at the moment... so maybe I'm missing something obvious... but I thought maybe there was a command to explicitly close the current lister, after which you could run a Prefs LAYOUT=My type command (which without the LAYOUTTHISLISTER arg mentioned above would normally just start a new lister with the saved layout settings... but leave the current lister open...). But I can't seem to stumble my way into a command that closes just the current lister...?
You could maybe just create a lister 'Style' based on the same settings stored in your saved layout... Styles load up just fine against the current lister. You would then create your button to run a command like Prefs STYLE=My
...I'll report the seemingly persistent LAYOUTTHISLISTER bug... when sober.