Removing small "salt & pepper" polygons from layer in QGIS?

It seems like you're working with Ordnance Survey Code-Point data, which is a dataset of the postal code areas in Great Britain and Northern Ireland.

The "points" you're referring to are small square polygons that represent so-called "vertical streets": stacks of more than one post code, which can't be represented using "conventional" polygons (see Andy Harfoot's comment for more details). You might want to think twice about removing these polygons if you need the affected postal codes for your analysis.

That said, here's how you can remove these polygons:

  1. Select all vertical street polygons by clicking "Select Features Using an Expression" and entering "POSTCODE" LIKE 'V%'. This will select all features that have a postal code starting with V, which are the vertical streets.

  2. Simply deleting the features won't help, since the polygons will leave holes behind, as you have already noticed. Instead, you can merge the vertical streets with a neighbouring large polygon using "Vector / Geoprocessing tools / Eliminate sliver polygons", saving the result to a new file.

  3. You may get the warning message that some features could not be dissolved, together with a list of feature ID's. If you also want to get rid of these features, select the vertical streets in the new layer using the expression from before, and then do one of the following:

    1. If you want an automatic solution, you can dissolve the vertical streets togehter with all neighbouring polygons. Save the selection to a new layer using "Layer / Save selection as vector file", and then use "Vector / Research Tools / Select by location" to select features in the merged layer that intersect with the offending vertical streets, creating a new selection. Then dissolve this selection using "Vector / Geoprocessing Tools / Dissolve", choosing --- Dissolve all --- in the "Dissolve field". Note that this approach can lead to the undesired dissolution of "proper" polygons if the offending vertical street is on the boundary of two other polygons, or if there are offending vertical streets within two neighbouring polygons.

    2. If you want to avoid dissolving other polygons, you can manually select the vertical streets and one adjacent polygon, taking care not to select two neighbouring polygons, and then dissolving them as above.

Try to reverse your methodology. Instead of trying to select and delete thousands of points, Have you tried to select the polygons and create a new layer from that selection? This wouldn't be too tedious if you had a method down for manually deleting all the points, just select the polygon features instead and either create a layer or export them. If these points are small polygons, as others have commented, you can still select only the polygons you want to keep and export.