No. There is not necessarily means of a HTTP request when the session is been destroyed. It can namely be destroyed during a timeout because the client hasn't sent any request for e.g. 30 minutes. The only case that a HTTP request would be available, is the case when you explicitly invoke HttpSession#invalidate()
yourself when e.g. a logout button is been pressed. But at the moment when you invoke that method, you would already have a HTTP request at your hands. You could then just do the cookie job at the same moment instead of in a session listener.
You're not clear on the concrete functional requirement for which you incorrectly thought that this would be the right solution, so I can't give a well suited answer as to how to solve that properly. But one of the ways would be to just store a copy of the information stored in the cookie as an attribute of the session. If you need to do that on a per-request basis, because the cookie value could be manipulated by JS in the client side, for example, then you could use a servlet filter for this.