The key to doing this in QGIS is to use a "single symbol" style, a single marker within that, and set the size via the expression editor. In this case, you want the area to be equal to the area field in your data, so your expression is sqrt("areafield")
- the square root is necessary because otherwise you scale the radius of the circle.
You also need to do two other things: first make sure the size is set to use "Map Units" and not "millimeters" or other paper units - without that the points will scale nicely with the zoom. Secondly, you might have to scale your expression by a factor depending on your coordinate system. Oh, you'll have to be using a projected coordinate system too - lat-long (epsg 4326 and similar wont work). Get the units of your projected coordinate system and figure out how to scale the square of those to your field units. So if your CRS is in metres, how many square metres in a hectare? Is it 10000? If so, then change the expression to sqrt("fieldname")/10000
- which gives you a size (radius) in metres for your circle.
This might be getting a bit fragile, and will be tricky if you are working in lat-long coordinates, so the other way would be to create small circular polygons of the correct area centred on your points rather than coax the symbology system to do something its not really designed for. You can do this using a buffer of the correct radius. The buffer tool has a box for specifying a field for the buffer radius, you need to compute this field as the square root of your area (again with a scale factor). There's no expression editor in the buffer radius field, so you'll have to create this as a new attribute in the attribute table.
I'd give you a worked example if you want to paste a few lines of x,y,area data into your question for a couple of example points.