The output Interval[{0},{90 \[Degree]}] is clearly a bug. Don't use "MinInterval".
It seems that the Region framework does not handle a predicate of the form NotElement[x, Integers]:
DiscretizeRegion@ImplicitRegion[ x \[NotElement] Integers, x]
BoundingRegion@%
You get a correct domain this way:
dom = FunctionDomain[{1/2 ArcSin[
      2 Tan[
        Piecewise[{{1/2, Abs[f1[x]] < 1/1000}, {x, x < 1/10}, {x, 
           x > 2/10}}, Undefined]]], 0 < x < 90 \[Degree]}, x, 
   Reals];
BoundingRegion[DiscretizeRegion@ImplicitRegion[Rest[dom], x]]
By the way, the expression f[x_] := Evaluate[something] is totally equivalent to f[x_] = something.