When the optimizer looks for a best execution plan, it needs to know how many rows a particular condition can match. For historical reasons a full-text search query that uses a full-text index is always assumed to return 1 row.
This works best for natural-language queries in MyISAM (where MATCH processing happens before the join and does not depend on the join plan, so using full-text index for joins is kind of free, does not add any cost at all).
But this might be not true for boolean search in MyISAM or any searches in other engines.
MariaDB needs to ask the engine to provide full-text search estimates instead of using hard-coded rules.