min(L, Min) :- sort(L, S), member(Min, S).
will do for your example data. More generally, setof/3 will allow to build a sorted list of solutions to a generic goal.
edit: without sorting, a somewhat involved solution based on select/3:
min(L, M) :-
select(T, L, R),
( maplist('<'(T), R), (M = T ; min(R, M)) ).
yields
?- min([2,6,1],X).
X = 1 ;
X = 2 ;
X = 6 ;
false.