You were almost there!
As documented here: https://tiddlywiki.com/#WidgetMessage%3A%20tm-close-tiddler, the tm-close-tiddler message uses param (not tiddler) to specify the title to be closed. Thus, your code should be:
<$list filter="my-filter" variable="my-list-item">
<$button message="tm-close-tiddler" param=<<my-list-item>>>
{{$:/core/images/close-button}}
</$button>
<$link to=<<my-list-item>>/>
</$list>
Alternatively, if you omit variable=my-list-item in the $list widget (i.e., allow it to use the default variable, currentTiddler), you can simplify it to just:
<$list filter="my-filter">
<$button message="tm-close-tiddler">
{{$:/core/images/close-button}}
</$button>
<$link/>
</$list>
Note that the above code uses the value of currentTiddler as the default parameter for the $link widget as well.
enjoy,
-e