I can't tell you why the featurefile-based approach isn't working. Fortunately, though, it's not too difficult to write a Lua function and a couple of TeX-side "wrapper" macros (named \myligsOn and \myligsOff) to perform the glyph substitutions directly.
In the code below, I've switched the font from DejaVuSerif to Garamond Premier Pro, as the former doesn't seem to have a glyph at position uniF731.

% !TEX TS-program = lualatex
\documentclass{article}
%% load fontspec package and specify main font
\usepackage{fontspec}
\setmainfont{Garamond Premier Pro}% -- DejaVuSerif has no glyph at pos. F731
%% Lua-side code
\usepackage{luacode}
\begin{luacode*}
function myligs ( s )
s = unicode.utf8.gsub ( s , '(\\?)([%a@]+)' , function( backslash, text )
-- no substitutions inside (La)TeX macros
if backslash=='' then
text = unicode.utf8.gsub (text, 'mł', 'b' )
text = unicode.utf8.gsub (text, 'am', 'fl' )
text = unicode.utf8.gsub (text, 'a', '\\char"F731' )
end
return backslash .. text
end)
return s
end
\end{luacode*}
%% TeX-side code
\newcommand\myligsOn{\directlua{luatexbase.add_to_callback(
"process_input_buffer", myligs, "myligs")}}
\newcommand\myligsOff{\directlua{luatexbase.remove_from_callback(
"process_input_buffer", "myligs")}}
\begin{document}
\myligsOn
\small % Note: The 'a' in '\small' is *not* being converted to '\char"F731'.
mł am a
\myligsOff
mł am a
\end{document}
Path = /usr/share/fonts/dejavu/. It is the system path and already searched for fonts. – Feb 16 '16 at 07:02młwithboramwithf_lprobably shouldn't be called ligation; I'd use the term "glyph substitution" for such an activity. – Mico Feb 16 '16 at 08:13