A creative approach (using a bit of PyQGIS) would be storing all the vertices of your features and then choosing the elements that are on the most left side of the current feature.
You may run this simple code from the Python Console (after having loaded your layer of interest in the Layers Panel):
from math import radians, cos, sin
layer = iface.activeLayer() # load the layer as you want
# Create the output layer
crs = layer.crs().toWkt()
outLayer = QgsVectorLayer('Point?crs='+ crs, 'final_points' , 'memory')
prov = outLayer.dataProvider()
fields = layer.pendingFields() # Fields from the input layer
prov.addAttributes(fields) # Add input layer fields to the outLayer
outLayer.updateFields()
for feature in layer.getFeatures():
attrs = feature.attributes()
points = []
multi_geom = feature.geometry().asPolygon()
for i in multi_geom:
points.extend(i)
del points[-1]
sorted_points = sorted(points, key=lambda vtx: vtx[0])
first_point = sorted_points[0]
if sorted_points[1][1] != sorted_points[0][1]:
second_point = sorted_points[1]
else:
second_point = sorted_points[2]
tmpGeom = QgsFeature()
tmpGeom.setGeometry(QgsGeometry.fromPolyline([first_point, second_point]))
semi_len = (tmpGeom.geometry().length())/2
tmp_azim = first_point.azimuth(second_point)
dist_x, dist_y = (semi_len * cos(radians(90 - tmp_azim)), semi_len * sin(radians(90 - tmp_azim)))
final_point = QgsPoint(first_point[0] + dist_x, first_point[1] + dist_y)
outGeom = QgsFeature()
outGeom.setAttributes(attrs)
outGeom.setGeometry(QgsGeometry.fromPoint(final_point))
prov.addFeatures([outGeom])
# Add the layer to the Layers panel
QgsMapLayerRegistry.instance().addMapLayer(outLayer)
and you will obtain the desired result:

I tested the above code on some simple situations that are similar to the ones you attached as examples and I didn't encounter any problem.
Note At the beginning of the code, I wrote:
layer = iface.activeLayer() # load the layer as you want
If you want to find other ways for loading the layer, you may probably find useful this post I recently wrote.