Why do i have different normal directions? (ascii stl)
It's because the vertices of the faces are listed in different orders.

The first face (red) is listed clockwise, and the second face is listed anti /counterclockwise, when viewed from this side.

The normal of a triangle can be calculated from the cross-product of two of its edges. The function is not commutative, so the order in which the edges are taken matters.

In Blender, and most other 3D applications, the vertices of a face are ordered in an anticlockwise direction, when the face is viewed with its normal towards you.

Whatever the 'Facet Normal' variable is doing.. (is it actually a scalar? 1 or -1?) it's doing the same to both facets, so does not alter the inconsistency in vertex order.

Edit: On further reading, it seems that facet_normal is intended to be a redundant, pre-calculated normal of the triangle, measured in the same space as the vertex coordinates. If not used, it's probably best set to (0,0,0). 

In the example given, it's correct for the blue face but inconsistent, (actually inverted) for the red face, as defined by the order of its vertices.