Did some more investigation and seems that stoplist implementation under the hood works differently for normal tables and filetables.
When using stoplist with normal tables the stopwords are left out of the FT-index, so when using the sys.dm_fts_index_keywords_by_document function or CONTAINS predicate the stopwords are not returned.
But when using stoplist with filetables all words are entered in to the FT-index, regardless if they exist in the stoplist or not, and are also returned with sys.dm_fts_index_keywords_by_document function. But if you use CONTAINS predicate the stoplist words are not returned.
My implementation uses a JOIN to sys.dm_fts_index_keywords_by_document and that is why stoplist failed to work with FT-indexes on filetables.